package com.cms.context.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * @author laolang
 * @version 1.0.0
 * @ClassName UtilsRedis
 */
@Component
public class UtilsRedis {

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    /**
     * 普通缓存存入数据
     * @param key
     * @param value
     * @return
     */
    public boolean set(String key,String value){
        try {
            redisTemplate.opsForValue().set(key,value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }

    }

    /**
     * 普通缓存获取
     * @param key
     * @return
     */
    public String get(String key){
        return key==null ? null : redisTemplate.opsForValue().get(key);
    }

    /**
     * 普通缓存，存入数据，同时设置缓存有效时间
     * @param key
     * @param value
     * @param time
     * @return
     */
    public boolean set(String key,String value,Long time){
       try{
        if(time>0){
            redisTemplate.opsForValue().set(key,value,time, TimeUnit.SECONDS);
        }else{
            set(key,value);
        }
        return true;
    }catch (Exception e){
           e.printStackTrace();
           return false;
       }
    }
}
